notebook: update tab area allocation when switching page
authorCosimo Cecchi <cosimoc@gnome.org>
Mon, 24 Oct 2011 17:12:21 +0000 (13:12 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Mon, 24 Oct 2011 17:19:39 +0000 (13:19 -0400)
When the active page is switched, it's important
gtk_notebook_pages_allocate() is called after the bulk of
gtk_notebook_real_switch_page() is run, as the former allocates a
different space according to the currently active tab, which is set by
the latter.
gtk_notebook_pages_allocate() already calls gtk_notebook_redraw_tabs()
when the allocation changes, so just move its call down to
gtk_notebook_real_switch_page() to fix the bug.

https://bugzilla.gnome.org/show_bug.cgi?id=662629

gtk/gtknotebook.c

index a6bf731aa51e3ef149d61f080a5897e5aa3f3803..86595ad2583a0c652da2b3f2828fb81d22d56714 100644 (file)
@@ -6497,6 +6497,8 @@ gtk_notebook_real_switch_page (GtkNotebook     *notebook,
     }
 
   gtk_notebook_update_tab_states (notebook);
+  gtk_notebook_pages_allocate (notebook);
+
   gtk_widget_queue_resize (GTK_WIDGET (notebook));
   g_object_notify (G_OBJECT (notebook), "page");
 }
@@ -6585,11 +6587,6 @@ gtk_notebook_switch_focus_tab (GtkNotebook *notebook,
     return;
 
   page = priv->focus_tab->data;
-  if (gtk_widget_get_mapped (page->tab_label))
-    gtk_notebook_redraw_tabs (notebook);
-  else
-    gtk_notebook_pages_allocate (notebook);
-
   gtk_notebook_switch_page (notebook, page);
 }